/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package test1;

import Tri.Search;
import Tri.TriRapide;
import fenetre.view;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.util.ArrayList;
import metier.ListPersonne;
import metier.Personne;

/*
 * Classe facilitant la gestion du main lors des Test
 * Exemple de main :  GestionTest.createTest(2);
 * Classe utilisée pour les différents test en fonction de l'évolution du projet.
 * Case 5 permet de lancer le projet complet.
 */
public class GestionTest {

    public GestionTest() {
    }

    public static void createTest(int i) {
        switch (i) {
          
            /*
             * Test Génération d'une simple liste puis l'affiche
             */
            case 1:
                ListPersonne.ListPersonne(1000);
                ListPersonne.afficheListe();
                break;
          
           /*
            * Test Tri QuickSort
            */
            case 2 :
                // Creation nbPersonne personnes 
                ListPersonne.nbPersonne = 30;
                ListPersonne.ListPersonne(ListPersonne.nbPersonne); 
              
                   
                // creation tableau de personnes pour tri en fonction du degrÃ© de celeb.
                //Personne[] tmp = ListPersonne.test();
                // tri tableau de personnes en fonction du degre de celeb.
                TriRapide.quickSortString(ListPersonne.getListePersonne(),0,ListPersonne.nbPersonne);
                ListPersonne.afficheListe(); 
                TriRapide.quickSortPseudo(ListPersonne.getListePersonne(),0,ListPersonne.nbPersonne);
                ListPersonne.afficheListe(); 
                //ListPersonne.afficheListeTriTest(tmp);
                //System.out.println("\nCelui qui a le plus de cÃ©lÃ©britÃ© : \n" + tmp[tmp.length-1].getPseudo()+ " " + tmp[tmp.length-1].getNom()+ " " + tmp[tmp.length-1].getPrenom());
                

                break;
              
                /*
                 * Test Recherches
                 */
            case 3 : //recherche par pseudo
                ListPersonne.ListPersonne(5); 
                
                //ListPersonne.afficheListe(); 
                Search.searchByPseudoBFS(ListPersonne.getListePersonne(), 3, ListPersonne.getListePersonne().get(1) );
                System.out.println("BFS yeah!");
                Search.searchByPseudoDFS(ListPersonne.getListePersonne(), 3, ListPersonne.getListePersonne().get(1));
                
                System.out.println("DFS yeah!");
                break;
               
                /*
                 * Test divers
                 */
            case 4 :
                // Creation nbPersonne personnes
                 ListPersonne.ListPersonne(ListPersonne.nbPersonne); 
                 // affichage
                  ListPersonne.afficheListe();   
                break;
                
                    /*
                    *  Application en Interface graphique
                    */
            case 5 : 
            java.awt.EventQueue.invokeLater(new Runnable() {

                public void run() {
                    Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
                     // et on place notre fenÃªtre au milieu
                    view fen = new view();
                    fen.setVisible(true);
                    fen.setLocation((screen.width - fen.getSize().width)/2,(screen.height - fen.getSize().height)/2);
                    
                }
                });
            break;
                
               /*
                 * Test Recherche par intérets
                 */
            case 6 : //recherche par interet
                ListPersonne.ListPersonne(20); 
                
                //ListPersonne.afficheListe(); 
               // Search.searchByInterestBFS(ListPersonne.getListePersonne(), ListPersonne.getListePersonne().get(1), 3);
                System.out.println("BFS yeah!");
                
                //Search.searchByPseudoDFS(ListPersonne.getListePersonne(), 3, ListPersonne.getListePersonne().get(1));
                
                //System.out.println("DFS yeah!");
                break;
        }
    }
}
